Providing services to groups of subscribers

ABSTRACT

A communications system for providing services to communication terminals, each terminal being addressable by means of an address, the communications system comprising: a service provision unit for providing services to the terminals; and a service data storage unit for storing a set of service provision definitions, each service provision definition comprising a service field storing an indication of a service and an address field storing an expression specifying the address of one or more of the terminals; and a service logic unit arranged to receive communications in the system and compare an address specified in a communication with the expressions stored in the address field of each of the service provision definitions and on the basis of that comparison causing the service provision unit to provide a service to the terminal identified by the said address.

This invention relates to providing services in a communications system,and especially to providing services to groups of subscribers.

The operator of a communication system such as a mobile telephonenetwork can provide services to subscribers to the system. Individualsubscribers may choose to pay for different services. In addition,services may be provided to groups of subscribers, either as a result oftheir having subscribed jointly to those services, or otherwise: forexample as a promotion directed to a group of subscribers. Such servicesare typically, but not necessarily, provided by way of an intelligentnetwork arrangement,

The provision of some services may be initiated by a call from thesubscriber's terminal. Examples of those services are weather reportsand sending of e-mails. The provision of other services may be initiatedby a call to the subscriber's terminal. Examples of those services arecall diversion and voice mail.

When a call is being processed by the network, the network must decidewhether the relevant service can be provided in that instance. To dothis it must check whether the subscriber in question is allowed toreceive the service. One way to do this is to query the account detailsstored for the subscriber. However, if that system is adopted it ishighly inconvenient to configure the system to provide or denyadditional services to groups of subscribers since the account detailsof each of the subscribers in the group must be altered. For example, itcan be envisaged that as a promotional offer companies may wish toprovide groups of subscribers with access to a service for a shortperiod. In the arrangement outlined above, the accounts of all thesubscribers in the group would have to be modified to permit the serviceto be provided, and then when the promotion expired they would all haveto be modified again to deny the service.

There is a need for an improved system for determining which subscribersare to be provided with services.

According to one aspect of the present invention there is provided acommunications system for providing services to communication terminals,each terminal being addressable by means of an address, thecommunications system comprising: a service provision unit for providingservices to the terminals; and a service data storage unit for storing aset of service provision definitions, each service provision definitioncomprising a service field storing an indication of a service and anaddress field storing an expression specifying the address of one ormore of the terminals; and a service logic unit arranged to receivecommunications in the system and compare an address specified in acommunication with the expressions stored in the address fields of eachof the service provision definitions and on the basis of that comparisoncausing the service provision unit to provide a service to the terminalidentified by the said address.

Preferably at least one of the said service provision definitions storesan expression specifying the address of more than one terminal. Mostpreferably the said expression is a wildcard expression. Alternatively,or in addition, the expression may take the form of a list of addressesor wildcard expressions. The said expression suitably defines a set ofnumerically contiguous addresses, most preferably a set of addresses ofwhich the first part of each is the same.

Suitably each address is a number. For example, each address maycomprise be or may comprise an MSISDN.

The communication may, for example, be a voice and/or text and/or videocommunication.

The terminals may be mobile stations.

The service provision unit is preferably capable of providing a servicewhereby part or all of the charge of the call is directed to asponsoring party distinct from the subscribers of the terminals. In thatway a person may conveniently sponsor the cost of the call.

The service logic unit is suitably arranged to, if the said addressmatches the expression stored in the address field of any of the serviceprovision definitions, cause the service provision unit to provide theservice indicated in that definition. Alternatively, the service logicunit may be arranged to, if the said address matches the expressionsstored in the address field of more than one of the service provisiondefinitions, prioritise the services indicated in those definitionsaccording to predetermined rules and on the basis of those rules causethe service provision unit to provide a subset of the services indicatedin those definitions. The service logic unit may be arranged to causethe service provision unit to provide the service/services indicated inthat/those definitions to a party to the communication.

The service logic unit may be arranged to compare the address of theoriginating party of the communication with the expressions stored inthe address fields of each of the service provision definitions and onthe basis of that comparison causing the service provision unit toprovide a service to the terminal identified by the said address. Thesaid address is suitably an A number.

The service logic unit may be arranged to compare the address of theterminating party of the communication with the expressions stored inthe address fields of each of the service provision definitions and onthe basis of that comparison causing the service provision unit toprovide a service to the terminal identified by the said address. Thesaid address may be a B number.

Preferably the communications system accords to the GSM standard or aderivative thereof.

The present invention will now be described by way of example withreference to the accompanying drawings, in which

FIG. 1 illustrates a communications system according to the presentinvention;

FIG. 2 illustrates subsystem interaction;

FIG. 3 illustrates a search for subscriber's ProvisionId;

FIG. 4 illustrates group member search;

FIG. 5 illustrates a possible short number search;

FIG. 6 illustrates a member analysis process; and

FIG. 7 illustrates a member found process for number translation.

The present invention will be described with reference to a GSM (GlobalSystem for Mobile Communications) system, but the present invention isnot limited to such systems. In the GSM system, when a call is made fromone terminal to another the number of the calling terminal is termed theA number and the number of the called terminal is termed the B number.In the GSM system, “numbers” of this type are MSISDN numbers, which arecarried in a-call as part of a “long number”. Analogous subscriberidentifiers are used in other systems.

When a call is made, the call data includes the A number and the Bnumber. Those numbers are therefore available for analysis to determinewhether services should be provided as a result of the call.

FIG. 1 illustrates a communications system according to the presentinvention. The system includes a number of terminals 1-5 which arecapable of wireless communication with network-side units indicatedgenerally at 6. The network-side units include an MSC (mobile switchingcentre) 7, at least one service provision unit 8 and a service controlblock 9. The service control block includes a service database 10 and aservice logic unit 11. The service control block is connected to the MSC7 to receive call data from the MSC, and to the service provision unit 8for causing the service provision unit to provide services.

When the MSC 7 receives a call in response to which a service may needto be provided, data on the call is sent to the service controlsubsystem. That data includes at least one of the A and the B subscribernumbers. At the service control subsystem the service database stores aset of definitions which together define what services may be providedto which terminals. Each definition includes an indication of theservice to which it relates (or of more than one service) and anexpression indicating one or more subscriber numbers. The subscribernumber(s) are tested against the expression in the definitions todetermine whether a service may be provided to the call (e.g. voicemail) or in response to the call (e.g. a weather report). If thedefinitions indicate that a service can be provided then the servicecontrol subsystem authorises the service provision unit to provide theservice. If more than one service can be provided then they areprioritised according to a predetermined hierarchy, so no all theservices that are matched have to be provided.

Since an expression can indicate more than one subscriber number it iseasy to configure the service control subsystem to permit the provisionof services to a group of terminals.

The implementation of the present invention will now be described inmore detail.

This implementation illustrates the application of the above principleto the allocation of services corresponding to a VPN (virtual privatenetwork) or PBX (private branch exchange). Often subscriber numberswithin a VPN or PBX will have digits in common (usually their initialdigits) with the specific numbers within the VPN or PBX being identifiedby other digits (usually the final digits). It is particularly easy toform an expression for a service definition that defines such a group,since the definition needs only to refer to the common digits. It willbe appreciated that more complex forms of definition could be used todefine groups of non-contiguous numbers. Groups that are unrelated toVPNs or PBXs could be defined.

In a preferred embodiment at least one of the definitions does includean expression that specifies more than one subscriber number. One simpleway to specify more than one subscriber is to use wildcards in theexpression. Thus, the expression “+35840*” specifies a group of numbersall of which begin +35840, such as +3584012345 and +3584098765. Anotherway to express a contiguous group of numbers is by specifying theuppermost and lowermost numbers of the group. Alternatively, a groupcould be specified as a list of numbers and/or wildcard expressions.

Where the service definitions indicate that more than one service may beprovided on the basis of one or both of the A and B numbers, a selectionmay be made between those services on the basis of a predetermined setof priorities. For example, if the analysis indicates that a pluralityof tariffs may be applied to the call then the priorities may indicatethat the lowest of those tariffs is to be applied to the call.

In some circumstances a service, such as a reduced tariff may beapplicable only if both the A and B subscribers are members of a commongroup. One example of this is where a company has arranged a reducedtariff for calls between its employees.

This description covers the implementation principles of features tosupport the feature of “VPN Large Number Ranges/PBX support”. Thisfeature enables provisioning of IN services to number ranges andperformance improvements for calls originated by a PBX which may sendincomplete digits of the destination number/address or from which thedestination digits may be delayed beyond initial digits of the address.

The VPN is becoming a more and more widely used IN service in themarket. A VPN service is typically targeted to corporate customers whichmay have PBXs serving thousands of subscribers. This means that when allPBX extension numbers should have VPN service, in prior art solutionsall extension numbers are needed to be provisioned one by one. Thisrequires lot of time for routing and space in the address database. Thepresent feature enables only one entry to provision VPN services to thewhole PBX or for a certain number range in the domain of the PBX.

In this description, the term subsystem refers to a part of the systemthat has its own separately definable function. Subsystems can bedivided further into program blocks. The notation short number 74* or 74indicates a short number range (by the starting digits of the shortnumber). The notation long number 35832574* or 35832574 indicates adirectory number range (by the starting digits of the directory number).

The present feature represents an extension to the current IN concept.The extension is such that a number range is considered as a subscriber.Thus, all operations that can be performed for individual subscribers,can be performed for number ranges as well. Performance improvement isachieved with more efficient search algorithm and more specificconfiguration of group member numbers.

Number ranges are defined as group members in the group, with theexception that number ranges contains number translations rule. Withthis number translation rule it is possible to resolve the long numberbased on the prefix of a short number and vice versa. The followingexample illustrates the idea of the number translation:

-   -   There is a PBX that has short numbers from 77000 to 77999.        Respectively, short numbers are converted into long numbers in a        way that 77000 is converted to 35832577000, 77001 to 35832577001        etc. Respectively, long numbers are converted into short numbers        in the same way. Thus, the number translation is described as        follows:    -   77⇄35832577    -   If the length of the short number is 5, e.g. called short number        77404 the number is translated to 35832577404, so the 77 is cut        from the beginning of the called number and the rest is pasted        to after the long number.

FIG. 2 shows the basic architecture of the system according to thepresent example. Preferred features of the system for implementing thepresent invention are:

-   -   1. The service logic must be able to form directory numbers from        the short numbers inside a number range according to the number        translation rule.    -   2. The service logic must be able to form short numbers from the        directory numbers inside a number range according to the number        translation rule.    -   3. It must be possible to define that calls made by directory        numbers to the group members inside number ranges are handled as        an on-net calls.    -   4. The service logic must be able to handle services provisioned        to the number ranges in the same way as the services provisioned        to the individual subscribers according to the priorities of the        services and normal interaction rules. Services are always        executed for the most accurate found subscriber number.    -   5. The subscriber can have both individual and number range        services provisioned. These services are handled normally        according priorities and interaction rules.    -   6. If the same service is provisioned to the individual        subscriber and the number range including this subscriber only        the individual service is executed.    -   7. If the subscriber has been defined to be the group member        both individually and inside some number range only the        individual values are used (e.g. class information). The        individual member must exist in the group and the service needs        to be provisioned to this number. Always the most accurate        number is found from provisioning data and group member data.    -   8. The service logic must be able to handle number ranges        defined with a wild card. The maximum number of digits which can        be replaced with the wild card is at least four. So the number        range 35832577* includes:    -    358325770-358325779    -    3583257700-3583257799    -    35832577000-35832577999    -    358325770000-358325779999    -    No wild cards used. Same functionality still achieved. The        amount of replaceable digits is not restricted.    -   9. There can not be several overlapping number ranges in one        group. There can be subgroups. The most accurate number range        which matches is used.    -   10. If the subscriber language has been defined for an        individual subscriber, it is always used instead of language        given for the number range in the service provisioning. The        service needs to be provisioned to the individual subscriber.    -   11. The same handling of number ranges must be able to be used        also in CAMEL services.    -   12. The group administrator must be able to modify class of the        number range. Group administrator is able to change class of the        number range via iSMAP (internet enabled Service Management        Access Point).    -   The group administrator must be able to modify the short number        part in number translation rule of number range. For example        group administrator can change translation rule of number range:        -   Change: 77*→358 3 257 7*        -   To: 45*→358 3 257 7*    -    It must be restricted that only the short number can be changed        by the group administrator.    -   13. The group administrator must not be able to modify the        directory number part in number translation rule of the number        range.    -   14. When the group administrator browse the groups and group        members one number range is handled as one entry, just like        individual subscriber.    -   15. If the result of a search made by the group administrator        (e.g. according to the class) is a number range and there is a        group member inside that number range having individual        definitions so that the individual group member is not included        to the search (e.g. has different class than the number range) a        notification has to be given to the group administrator, so that        administrator can decide for possible further actions.    -   16. The service provider must be able to use a wild card in the        provisioning and group definition to define numbers ranges. The        maximum number of digits which can be replaced with the wild        card is at least four. So the number range 35832577* includes:        -   358325770-358325779        -   3583257700-3583257799        -   35832577000-35832577999        -   358325770000-358325779999    -   17. The service provider must be able to add number ranges to        the group and define individual translation rule for every        number range. There can exist translation rule for each number        range inside one group.    -   18. It should not be possible to define overlapping number        ranges in one group. Though the same number range can be a        member in several different groups.    -   19. It should be possible to add an individual group member to        the same group with number ranges. Individual group member can        overlap with number range inside the same group.    -   20. The number range is handled as an individual group member,        when defining and handling the group.    -   21. The number range is handled as individual subscriber in        provisioning.    -   22. The service provider must be able to provision the same        service to individual subscribers and number ranges including        the subscriber. If the subscriber should have some individual        data the services must be provisioned to this subscriber        individually.    -   23. The service provider must be able to provision both number        range and individual services to the subscribers.    -   24. It should not be possible to use overlapping number ranges        regardless of services in provisioning.    -   25. The group members inside the number ranges are always actual        group members. The number ranges can not be used when virtual        group members are defined. The virtual group members must be        added to the group one by one.

The service logic is able to handle services which are provisioned tonumber ranges. A number range is treated like a subscriber. A numberrange can have group services or individual services provisioned. Itshould be possible to have subgroups and individual subscribers havingservices provisioned to them inside the number range. This can beachieved so that the services are always executed to the most accuratenumber found from tables of “DirectoryNumber” and “DirNumRange”. Forexample if subscriber A which is number range (=35832577) has service S1provisioned. Subscriber B which is number range (=358325771) andsubgroup of A and has service S2 provisioned. The subscriber numbercalling is 35832577105 and the most accurate number range 358325771service S2 is executed.

The DirNumRange table is read only if the ServiceKey contains bit 17with value 1. When triggering happens the subscribers ProvisionId can befound in the following way, as described with reference to FIG. 3.

-   -   A subscriber is searched from DirectoryNumber table with calling        number in originating services and with called number in        terminating services. If number is found from the        DirectoryNumber table, the service logic continues the execution        as in J4. If the number is not found the ServiceKey 17 bit is        checked. If the. 17 bit has value 0 the subscriber has no IN        services and it is treated as in J4.    -   If the 17 bit has value 1 the DirNumberConfData is read with        primarykey(1).    -   DirNumberRange is read with AnalysisMinLen amount of digits of        the calling or called number.    -   If matching row cannot be found, the service logic continues the        execution as in J4 when the subscriber cannot be found from the        database.    -   If matching row can be found the MoreDigitsMask is checked if        the 4 bit has value 0, then more digits are needed to be        checked. Then it is checked if current digits and digits value        of bits 0-3 is less or equal than available digits. If yes then        the number length is known. Then it is needed to be checked that        current digit summed with defined digits in MoreDigitsMask is        smaller than AnalysisMaxLen. If yes the number range can be        searched with current digits summed with defined digits in        MoreDigitsMask. If the length of the calling or called number is        shorter than defined or AnalysisMaxLen is exceeded then the        service logic continues the execution as in J4 when the        subscriber cannot be found from the database.    -   If matching row can be found the MoreDigitsMask is checked if        the 4 bit has value 1, then this row is potential number range        subscriber and it is stored into the memory. Then it is checked        if the value of bits 0-3 if the value is bigger than 0. If yes        then the number length is known and that amount of digits can be        added to the current digits number in previous search to find        the row from DirNumberRange table.    -   If matching row can be found the MoreDigitsMask is checked if        the 4 bit has value 1, then this row is potential number range        subscriber and it is stored into the memory. Then it is checked        if the value of bits 0-3 the value is bigger than 0. If no then        the number in this row is the number range subscriber and the        service logic continues the execution as in J4 with individual        subscriber.    -   If matching row has been found once and that was stored into        memory and more deeper number range was searched and was not        found the stored row contains the number range subscriber        information and the service logic continues the execution as in        J4 with individual subscriber.

Data on the group and group member are stored into new tablesGroupConfData, NewGroupMember, MemberAnalysis and ShortNumberAnalysis ifnew structure is wanted to be used. Group and group members can existsin these new tables only if from GroupConfData can be found a row withthe GroupId in question. The GroupId can have been found in theconventional way from ServicesOfSubscriber table after the subscriberhas been found. The most accurate number is found from the serviceprovision data and the group member data both with short numbers anddirectory numbers.

FIGS. 4 to 7 illustrate how it is checked if a calling or called partyis the member of the group.

Referring to FIG. 4,

-   -   using the GroupId found from ServicesOfSubscriber table as a        primarykey the GroupConfData is read. If the row is not found,        then conventional techniques to determine which service to        provide can then be used. If the row is found the configuration        data is read and stored for later usage.    -   Then it is checked whether the service started in OBCSM. If no        the search continues in the Member analysis. If yes the B-number        is analysed.    -   The B-number analysis should return the called number in        international format, if the calling party is mobile and        information if the number is long for sure. (Long for sure is        e.g. number received from MSC/SSP in international format.)    -   Then it is checked if the number is long for sure. If no        analysis is continued in Possible short. If yes it is checked if        Forced On-net Short Numbers service parameter FDE is selected        into the service. If no the call is Off-net call and this        feature is not interested of the number anymore. If yes the        analysis is continued in the Member analysis.    -   Possible short returns information if the member was found with        short number and the member type (actual or not).    -   If the member is not found with short execution returns to        checking of usage of Forced On-net Short Numbers.    -   If member is found it is checked if the member is actual or not.        If the member is actual the call is interpreted to be On-net        call, short numbers used and that information is transferred to        Member found in needed point.    -   If member is found and the member is not actual the call is        interpreted to be call to virtual member with short number and        that information is transferred to Member found in needed point.

FIG. 5 shows a possible short number search and is explained below:

-   -   First it is checked if the calling party is mobile.    -   If yes the NewGroupMember table is read using the called number        received in InitialDp. If the member is found, then is checked        the member type of the member and that information with found        with short is returned. If no continued as in 3.    -   Then it is checked if the ShortMinLen is less or equal than the        available digits. If no required digits are asked from the        switch. After digits are received execution continues in 4.    -   if yes the ShortNumberAnalysis table is read by using        ShorLMinLen defined amount digits as primarykey.    -   If matching row can be found the MoreDigitsMask is checked if        the 4 bit has value 0, then more digits are needed to be        checked. Then it is checked if current digits and digits value        of bits 0-3 is less or equal than available digits. If yes then        the number length is known. Then it is needed to be checked if        current digits+MoreDigits is less or equal than available        digits. If yes the number range can be searched with current        digits summed with defined digits in MoreDigitsMask. If no more        digits are asked from the switch.    -   If matching row can be found the MoreDigitsMask is checked if        the 4 bit has value 1, then this row is potential member and it        is stored into the memory. Then it is checked if the value of        bits 0-3 if the value is bigger than 0. If yes then the number        length is known and that amount of digits can be added to the        current digits number in previous search to find the row from        NewGroupMember table.    -   If matching row can be found the MoreDigitsMask is checked if        the 4 bit has value 1, then this row is potential number range        subscriber and it is stored into the memory. Then it is checked        if the value of bits 0-3 the value is bigger than 0. If no then        this number is used as primarykey to find the member from        NewGroupMember.    -   If matching row has been found once and that was stored into        memory and more deeper number range was searched and was not        found the stored row contains the number in memory is used as        primarykey to find the member from NewGroupMember.    -   If member is found then is checked that the length of the        shortnumber is equal to ShortNumLen. If yes then this number is        a member and member type of the member and information found        with short is returned. If no then this is not short number and        not found and not actual is returned.

For Translation and CLI modification when a group member has been found,the group member must be able to find even the members number range.These number ranges have translation rules from directory number toshort number and vice versa. The translation rule is defined in thedatabase table NewGroupMember, there is the field IsTranslation whichdefines if the translation rule exists or not. Translation rule itselfcontains information in field Number (short number), LongNumber (numberrange) and ShortNumLen. Number field defines which part of the shortnumber is replaced with Information in LongNumber. The ShortNumLen fieldtells then the length of the short number and so defines that onlycorrect length numbers are converted from short to long and LongNumLendefines the same for long numbers. For example if following data can befound from the database

Member GroupId Number LongNumber Type IsTranslation ShortNumLenLongNumLen 1 74 35832574 Actual Yes 5 11

-   -   VPN group member A calls to group member B with 74234.    -   B is found to be a group member. It is checked that called short        number has the same length as defined in the database.    -   From short number 74234 from the beginning is removed Number 74        and the rest (234) is pasted to the end of LongNumber. It is        checked that length of the number is 11.    -   The number in Connect is then 35832574234.

FIG. 7 shows a more generic view.

It is greatly preferred that always the most accurate directory numberor directory number range must be found together with the ProvisionIdfor that subscriber. Number range is treated as subscriber and has allinformation of the subscriber in the subscriber table.

As regards implementation, the basic idea is that each number range isseen as an individual subscriber or group member and all that can bedone in respect of the subscriber or group member should be capable ofbeing done in respect of a number range. Tool kit tools must supportboth old database structure and this new structure. Group member canbelong to both structures inside the same SCP, then of course the groupmember must be a member of two different groups. Members of the samegroup can belong only to old structure or new, but not both. Theservices are executed always to the most accurate number and the groupmember is found always with the most accurate number possible.

When a service provider wants to create a group with a number range theconfiguration data can be stored first. Then the number range groupmember is entered as one row entry, all old data of the group member isof course entered also e.g.:

Long Short Long number Short number number length number lengthTranslation 35832577 11 77 5 Yes 35832577066 11 77066 5 No 358325772 11772 5 Yes 358405722977 12 8874234 7 No

When group members are listed/browsed the number range is seen as oneentry. SMI should take care of inserting required digits into analysistables. The most accurate member should be on top of listing when groupis browsed after saving.

The service provider must be able to provision services to numberranges. There can exists overlapping number ranges, same number rangecan exists with only one ProvisionId like individual subscriber.Originating services and Terminating services can be provisioned tonumber range subscriber, but not Universal Access or Location Updateservices.

Before the number range can be provisioned the DirNumberConfData must beconfigured. This can be done with Provision Tool and only networkoperator is allowed to execute this configuration. This configurationdata is required before provisioning because that data is needed to fillthe database so that there does not exist gaps.

If it is wanted that sub group or individual subscriber has differentservices or different provisioning values than the service provisionedto the number range within the sub group or individual subscriberbelongs to. These services must be provisioned individually to the subgroup or to the individual subscriber. For example if number range35832577 has service S1 and individual subscriber 35832577066 need tohave different announcement in service S1, this service S1 must beprovisioned to this individual subscriber and this individual subscriberis not any more affected with changes of provisioning data of the numberrange.

SMI should take care of inserting required digits into analysis tables.The most accurate member should be on top of listing when subscribersare browsed after saving.

A SMAP (Service Management Access Point) web subsystem may be provided.Then preferably new information about the groups can be entered via SMAPweb. All information must be able to be entered into GroupConfDatatable. If the groups are wanted to use this VPN large number or PBXsupport function it must be decided before group members are enteredinto the group. So there must exist selection if new or old structure isused in this group. The group configuration data must also be enteredbefore entering group members, because the MemberAnalysis andShortNumberAnalysis tables are filled with required digits to avoid gapsand the configuration data is used there. This avoiding of gap ensuresthe effective service logic functionality. If there exists gaps thesearching of group members in service logic won't work as described inprevious chapters. iSMAP must support both old database structure andthis new structure. Group member can belong to both structures insidethe same SCP, then of course the group member must be a member of twogroups. Members of the same group can belong only to old structure ornew, but not both

The applicant draws attention to the fact that the present invention mayinclude any feature or combination of features disclosed herein eitherimplicitly or explicitly or any generalisation thereof, withoutlimitation to the scope of any of the present claims. In view of theforegoing description it will be evident to a person skilled in the artthat various modifications may be made within the scope of theinvention.

1. A communications system configured to provide services tocommunication terminals, the communications system comprising: a serviceprovision unit configured to provide services to the terminals anddirecting a charge of a call to a sponsoring party distinct fromsubscribers of the terminals, wherein the service provision unit directsthe charge of the call to be made for multiple accounts and tariffs, andeach terminal is addressable by means of an address; and a service datastorage unit configured to store a set of service provision definitions,each service provision definition comprising a service field storing anindication of a service and an address field storing an expressionspecifying the address of one or more of the terminals; and a servicelogic unit configured to receive communications in the system andcompare an address specified in a communication with the expressionsstored in the address fields of each of the service provisiondefinitions and on the basis of that comparison causing the serviceprovision unit to provide a service to the terminal identified by thesaid address.
 2. A communications system as claimed in claim 1, whereinat least one of the said service provision definitions stores anexpression specifying the address of more than one terminal.
 3. Acommunications system as claimed in claim 2, wherein the said expressionis a wildcard expression.
 4. A communication system as claimed in claim2, wherein the said expression defines a set of numerically contiguousaddresses.
 5. A communication system as claimed in claim 2, wherein thesaid expression defines a set of addresses of which the first part ofeach is the same.
 6. A communications system as claimed in claim 1,wherein each address is a number.
 7. A communications system as claimedin claim 6, wherein each address is or comprises an Mobile StationInternational Subscriber Directory Number (MSISDN).
 8. A communicationssystem as claimed in claim 1, wherein the communication is a voicecommunication.
 9. A communications system as claimed in claim 1, whereinthe terminals are mobile stations.
 10. A communications system asclaimed in claim 1, wherein the service logic unit is configured to, ifthe said address matches the expression stored in the address field ofany of the service provision definitions, cause the service provisionunit to provide the service indicated in that definition.
 11. Acommunications system as claimed in claim 1, wherein the service logicunit is configured to, if the said address matches the expressionsstored in the address field of more than one of the service provisiondefinitions, prioritize the services indicated in those definitionsaccording to predetermined rules and on the basis of those rules causethe service provision unit to provide a subset of the services indicatedin those definitions.
 12. A communications system as claimed in claim10, wherein the service logic unit is configured to cause the serviceprovision unit to provide the service/services indicated in that/thosedefinitions to a party to the communication.
 13. A communications systemas claimed in claim 1, wherein the service logic unit is configured tocompare the address of the originating party of the communication withthe expressions stored in the address fields of each of the serviceprovision definitions and on the basis of that comparison causing theservice provision unit to provide a service to the terminal identifiedby the said address.
 14. A communications system as claimed in claim 13,wherein the said address is an A number.
 15. A communications system asclaimed in claim 1, wherein the service logic unit is configured tocompare the address of the terminating party of the communication withthe expressions stored in the address fields of each of the serviceprovision definitions and on the basis of that comparison causing theservice provision unit to provide a service to the terminal identifiedby the said address.
 16. A communications system as claimed in claim 15,wherein the said address is a B number.
 17. A communications system asclaimed in claim 1, which accords to the Global System for MobileCommunications (GSM) standard.
 18. A service provision unit in acommunications system, the communications system comprising: a servicedata storage unit configured to store a set of service provisiondefinitions, wherein each service provision definition comprises aservice field storing an indication of a service and an address fieldstoring an expression specifying an address of one or more terminals,and the communications system is configured to provide services tocommunications terminals, each terminal being addressable by means ofthe address; and a service logic unit configured to receivecommunications in the system and compare an address specified in acommunication with the expressions stored in the address fields of eachof the service provision definitions and on that basis of thatcomparison authorize the service provision unit to provide a service tothe terminal identified by the said address, wherein the serviceprovision unit is configured to provide services to the terminalsresponsive to receiving authorization from the service logic unit anddirect a charge of a call to a sponsoring party distinct fromsubscribers of the terminals, and direct the charge of the call to bemade for multiple accounts and tariffs.
 19. A communications system forproviding services to communication terminals, the communications systemcomprising: service provision means for providing services to theterminals and directing a charge of a call to a sponsoring partydistinct from subscribers of the terminals, wherein the serviceprovision unit directs the charge of the call to be made for multipleaccounts and tariffs, and each terminal is addressable by means of anaddress; and service data storage means for storing a set of serviceprovision definitions, each service provision definition comprising aservice field storing an indication of a service and an address fieldstoring an expression specifying the address of one or more of theterminals; and service logic means for receiving communications in thesystem and compare an address specified in a communication with theexpressions stored in the address fields of each of the serviceprovision definitions and on the basis of that comparison causing theservice provision unit to provide a service to the terminal identifiedby the said address.
 20. A service provision unit in a communicationssystem, the communications system comprising: service data storage meansfor storing a set of service provision definitions, wherein each serviceprovision definition comprises a service field storing an indication ofa service and an address field storing an expression specifying anaddress of one or more terminals, and the communications system providesservices to communications terminals, each terminal being addressable bymeans of the address; and service logic means for receivingcommunications in the system and compare an address specified in acommunication with the expressions stored in the address fields of eachof the service provision definitions and on that basis of thatcomparison authorize the service provision unit to provide a service tothe terminal identified by the said address, wherein the serviceprovision unit is configured to provide services to the terminalsresponsive to receiving authorization from the service logic unit anddirect a charge of a call to a sponsoring party distinct fromsubscribers of the terminals, and direct the charge of the call to bemade for multiple accounts and tariffs.